package com.xiyu.service.vo.customer.customer;

import com.xiyu.service.vo.customer.info.baseVO.CustomerInfoBase;
import com.xiyu.service.vo.customer.contact.baseVO.CustomerContactSocialMediaBase;
import com.xiyu.service.vo.customer.contact.baseVO.CustomerContactBusinessCardBase;
import com.xiyu.service.vo.customer.contact.baseVO.CustomerContactPhoneBase;
import com.xiyu.service.vo.customer.info.baseVO.CustomerImageBase;
import com.xiyu.service.vo.customer.contact.baseVO.CustomerContactMailBase;
import com.xiyu.service.vo.customer.contact.baseVO.CustomerContactBase;
import com.xiyu.service.vo.customer.info.baseVO.CustomerWebsiteBase;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;

import jakarta.validation.Valid;
import com.xiyu.service.enums.common.CommonStatusEnum;
import com.xiyu.service.framework.validation.InEnum;

@Schema(description = "新增客户")
@Data
public class CustomerCreateInput extends CustomerInfoBase {

    @Schema(description = "客户图片")
    @Valid
    private List<image> images;

    @Schema(description = "客户联系人")
    @Valid
    private List<contact> contacts;

    @Schema(description = "客户网址")
    @Valid
    private List<website> websites;

    @Schema(description = "客户网址")
    @Data
    @Valid
    public static class website extends CustomerWebsiteBase {
    }

    @Schema(description = "客户联系人")
    @Data
    @Valid
    public static class contact extends CustomerContactBase {

        @Schema(description = "客户联系人邮箱")
        @Valid
        private List<mail> mails;

        @Schema(description = "客户联系人名片")
        @Valid
        private List<businessCard> businessCards;

        @Schema(description = "客户联系人手机号")
        @Valid
        private List<phone> phones;

        @Schema(description = "客户联系人社交媒体")
        @Valid
        private List<socialMedia> socialMedias;
    }

    @Schema(description = "客户联系人邮箱")
    @Data
    @Valid
    public static class mail extends CustomerContactMailBase {
    }

    @Schema(description = "客户图片")
    @Data
    @Valid
    public static class image extends CustomerImageBase {
    }

    @Schema(description = "客户联系人手机号")
    @Data
    @Valid
    public static class phone extends CustomerContactPhoneBase {
    }

    @Schema(description = "客户联系人名片")
    @Data
    @Valid
    public static class businessCard extends CustomerContactBusinessCardBase {
    }

    @Schema(description = "客户联系人社交媒体")
    @Data
    @Valid
    public static class socialMedia extends CustomerContactSocialMediaBase {
    }

}